Back to overview

WAGO: Multiple vulnerabilities in docker configuration

VDE-2024-047
Last update
05/22/2025 15:03
Published at
11/18/2024 12:00
Vendor(s)
WAGO GmbH & Co. KG
External ID
VDE-2024-047
CSAF Document

Summary

Nozomi reported eight vulnerabilities to WAGO affecting different firmwares installed on several devices.

Impact

The identified vulnerabilities could lead to a denial-of-service attack or alter of the firmware and docker configuration.

Affected Product(s)

Model no. Product name Affected versions
0751-9?01 WAGO CC100 0751/9x01 Firmware <=04.04.03(70), Firmware <=04.03.03(72), Firmware <=4.5.10 (FW27)
0752-8303/8000-0002 WAGO Edge Controller 0752-8303/8000-0002 Firmware <=4.5.10 (FW27)
0750-810?/????-???? WAGO PFC100 G1 0750-810x/xxxx-xxxx Firmware <=3.10.10 (FW22 Patch 1)
0750-811?-????-???? WAGO PFC100 G2 0750-811x/xxxx-xxxx Firmware <=4.5.10 (FW27)
750-820?-????-???? WAGO PFC200 G1 0750-820x/xxx-xxx Firmware <=03.03.08(80), Firmware <=3.10.10 (FW22 Patch 1)
750-821?-????-???? WAGO PFC200 G2 0750-821x/xxx-xxx Firmware <=04.04.03(70), Firmware <=4.5.10 (FW27)
0762-420?/8000-000? WAGO TP600 0762-420x/8000-000x Firmware <=4.5.10 (FW27)
0762-430?/8000-000? WAGO TP600 0762-430x/8000-000x Firmware <=4.5.10 (FW27)
0762-520?/8000-000? WAGO TP600 0762-520x/8000-000x Firmware <=4.5.10 (FW27)
0762-530?/8000-000? WAGO TP600 0762-530x/8000-000x Firmware <=4.5.10 (FW27)
0762-620?/8000-000? WAGO TP600 0762-620x/8000-000x Firmware <=4.5.10 (FW27)
0762-630?/8000-000? WAGO TP600 0762-630x/8000-000x Firmware <=4.5.10 (FW27)

Vulnerabilities

Expand / Collapse all

Published
09/22/2025 14:58
Weakness
Missing Authentication for Critical Function (CWE-306)
Summary

The PLC Runtime Services property in the Configuration tab allows administrators to modify the CODESYS service configuration, enabling engineers to install applications on the PLC device. This functionality is hidden from regular user profiles in the frontend and is documented as admin-only in the user manual. However, despite the PLC Runtime Services tab being inaccessible to regular users, a low-privileged attacker can bypass this by sending a crafted HTTP request with a valid user session. This allows them to modify the service configuration, potentially disabling the authentication required for the CODESYS V3 service, giving full access to the PLC's application layer. A proof-of-concept demonstrates that a user-level session can successfully modify the PLC Runtime Settings via an HTTP request, disabling CODESYS V3 authentication.

References

Published
09/22/2025 14:58
Weakness
Path Traversal: '.../...//' (CWE-35)
Summary

The savesram command in the PLC Shell functionality of the CODESYS framework allows authenticated users to save the device's memory to a backup file on the system. However, this feature does not properly sanitize the user input for the parameter, allowing attackers to specify arbitrary file paths using characters like ../. The server-side daemon appends the .ret extension, so an input like ../../etc/passwd becomes /etc/passwd.ret, which doesn't exist.

References

Published
09/22/2025 14:58
Weakness
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') (CWE-22)
Summary

The saveretain command in the PLC Shell functionality of the CODESYS framework allows authenticated users to save backup data to a specified file location. However, this functionality does not properly sanitize user input for the parameter, enabling an attacker to specify arbitrary files on the system using special characters like ../. The specified file is then deleted by the CODESYS server-side daemon, resulting in arbitrary file deletion with root privileges. For example, an attacker can specify a critical file like /etc/passwd as ../../etc/passwd, leading to its deletion and causing a permanent denial-of-service. This vulnerability can be exploited by a low-privileged user who, after bypassing CODESYS authentication using a related vulnerability (NN-2024-0071), gains access to the PLC programming framework.

References

Published
09/22/2025 14:58
Weakness
Missing Authentication for Critical Function (CWE-306)
Summary

The Boot mode configuration in the Security tab allows an administrator to change the device's boot mode, determining the firmware location to be executed. This functionality is hidden from regular user profiles in the frontend and is documented as admin-only in the user manual. However, although the Security tab is not visible to regular users, a low-privileged attacker can bypass this by sending a crafted HTTP request with a valid user session. This enables them to modify the boot mode configuration, potentially causing a denial-of-service attack or altering the firmware upgrade process. A proof-of-concept shows that a user-level session can successfully modify the boot configuration mode through a crafted HTTP request.

References

Published
09/22/2025 14:58
Weakness
Incorrect Permission Assignment for Critical Resource (CWE-732)
Summary

The BACNet Configuration property in the Fieldbus tab allows administrators to configure the BACNet service, including enabling, disabling, and modifying its properties. While the web interface correctly restricts low-privileged users by displaying this tab as read-only, as only administrators should be able to change the BACNet service according to the user manual, this restriction is not enforced on the underlying Linux operating system. As a result, an attacker with user-level access can modify the BACNet configuration through an SSH shell, exploiting weak system permissions.

References

Published
09/22/2025 14:58
Weakness
Path Traversal: '.../...//' (CWE-35)
Summary

The restoresram command in the PLC Shell functionality of the CODESYS framework allows authenticated users to restore the device's memory from a backup file on the system. However, this functionality does not properly sanitize the user input for the parameter, allowing an attacker to specify arbitrary file paths using special characters like ../. The server-side CODESYS daemon appends the .ret extension to the specified file, so input like ../../etc/passwd becomes /etc/passwd.ret, which doesn't exist.

References

Published
09/22/2025 14:58
Weakness
Incorrect Permission Assignment for Critical Resource (CWE-732)
Summary

The Network Capture feature in the Diagnostic tab allows administrators to enable or disable the capture of network traffic for diagnostic purposes. Since the Wago PLC device supports unencrypted communication protocols like HTTP and FTP, captured traffic may include sensitive information such as login credentials. According to the user manual, only administrators should have access to download and analyze this data. However, the captured traffic is stored in a publicly readable directory (/var/tmp/pcap) with weak permissions, as shown in the example where the file is saved with -rw-r--r-- permissions. This allows any user with SSH access, including low-privileged users, to read and download the file. The vulnerability allows low-privileged users to bypass access controls, download network traffic data, and extract sensitive information such as administrator credentials, as demonstrated in a proof-of-concept involving a password reset captured via HTTP.

References

Published
09/22/2025 14:58
Weakness
Missing Authentication for Critical Function (CWE-306)
Summary

The Docker settings within the Configuration tab allow an administrator to enable or disable the Docker service on the device. This functionality is hidden from regular user profiles in the frontend and is documented as an admin-only feature in the user manual. However, although the Docker Settings tab is shown as read-only for regular users, a low-privileged attacker can bypass this by sending a crafted HTTP request with a valid user session. This allows them to modify the Docker service configuration, potentially causing a denial-of-service attack on certain services within a Docker container. A proof-of-concept demonstrates how a user-level session can successfully modify the Docker settings via an HTTP request.

References

Remediation

Update to Firmware 4.6.x (FW28). For G1 devices update to Firmware 3.10.11 (FW22 Patch 2). For the latest Custom Firmware, please contact the WAGO support.

Revision History

Version Date Summary
1 11/18/2024 12:00 Initial document.
2 01/30/2025 12:00 Added known mitigations as remediation. Added the Custom Firmware to the product branch. Added firmware 3.10.11 (Firmware 22 Patch 2) to the fixed products. This version was in revision 1 listed as vulnerable.
3 02/12/2025 17:48 Fix: corrected self-reference, fixed version
4 05/22/2025 15:03 Fix: quotation mark